Programmable gain amplifiers (PGAs) may be used to amplify analog signals from sensors that measure, for example, temperature, pressure, humidity, vibration, pH, flow, etc. Usually, the amplified signals of the sensors are coupled to an analog-to-digital converter (ADC) which samples the analog signal values. The ADC digital output may be coupled to a digital signal processor (DSP) for further processing of the amplified signal information from these sensors.
The various sensors may require sampling at different rates since fast-changing signals must be processed more frequently than slower-changing signals (e.g., Nyquist sampling rate). In addition, different sensors may produce signals having different amplitudes that require different amplifier gains so as to fully utilize the dynamic range of the ADC.
A PGA typically switches resistance values in its feedback circuit to select different gains. There also may be an analog input multiplexer (MUX) for selecting between a multiple number of analog input channels to the PGA. In a microcontroller system it is therefore necessary to control the gain switches and the analog input MUX to the PGA. In addition, it is useful to be able to send various other commands to the PGA, e.g., bandwidth, power draw, auto-calibrate, auto-offset zero, etc., and/or to read back the status or other data pertaining to operation of the PGA and/or the MUX.
PGAs have been built using discrete amplifiers, resistors, switches and MUXs. However, the resulting system has been costly in terms of printed circuit board space, power consumption and the number of discrete components required. Performance has also suffered because of component mismatch, circuit drift and parasitic capacitances. Some integrated circuit (IC) implementations have been developed for a PGA, but these PGA ICs lack flexible control and do not have multiple input channel capabilities for handling a plurality of sensors. Without multiple input channel capabilities, system-level calibration of gain and offset is not possible since there can be no dedicated input channel for calibration to a reference signal.
Presently, discrete logic inputs are used in PGA ICs to control the PGA functions, including gain. For example, three input pins of the PGA IC may be dedicated to selecting one of eight gain settings. Other pins may be used for device selection, power-down sleep mode, read status, write control data, etc. However, these control and status pins of the PGA IC add additional pin count to the IC device, increasing the IC package size and cost.
Therefore, what is needed is a way to have flexible control and status of a PGA IC without having to materially increase the pin count of the PGA IC package.